<?php

namespace app\office\model;

use think\Model;

class Document extends Model
{
     //增加记录时,自动完成状态设置;
    protected $insert=[
      'static'  =>  1,
    ];

    
    //在模块内再次确保开启自动时间戳;
    protected $autoWriteTimestamp='datetime';
    
    //设置自动时间戳格式为datetime格式;
    protected $type=[
      'create_time'=>'datetime',
      'update_time'=>'datetime',
    ];
    
    // 设置读取器create_time
    protected function getCreateTimeAttr($create_time){
      return date('Y-m-d',strtotime($create_time));     /* 注意:此处用到了strtotime函数 */
    }
    
    // 设置读取器update_time
    protected function getUpdateTimeAttr($update_time){
      return date('Y-m-d',strtotime($update_time));     /* 注意:此处用到了strtotime函数 */
    }
    
    // 设置读取器is_sth
    // protected function getIsSthAttr($value){
      // $static=[0=>'否',1=>'是'];
      // return $static[$value];
    // }
    
    // 设置读取器sth_num
    protected function getSthNumUnitAttr($value,$data){
      return $data['sth_num']." 件";
    }
    
    // 设置读取器delat_time,不存在的属性
    protected function getDeltaTimeAttr($value,$data){
      $delta_time=floor((strtotime($data['update_time'])-strtotime($data['create_time']))/3600/24);       /* 此处根据情况可选择round,ceil,floor */
      return $delta_time." 天";
    }
    
    // 设置读取器static
    protected function getStaticTextAttr($value,$data){
      $static=[
      0=>'作废',
      1=>'文件编制',
      2=>'文件校核',
      3=>'文件会签',
      4=>'文件审核',
      5=>'质量审核',
      6=>'部所审查',
      7=>'文控审查',
      8=>'项目审查',
      9=>'项目经理',
      10=>'入库审查',
      11=>'关闭',
      ];
      return $static[$data['static']];
    }
    
    // 设置读取器static
    protected function getMaxStaticTextAttr($value,$data){
      $static=[
      0=>'作废',
      1=>'文件编制',
      2=>'文件校核',
      3=>'文件会签',
      4=>'文件审核',
      5=>'质量审核',
      6=>'部所审查',
      7=>'文控审查',
      8=>'项目审查',
      9=>'项目经理',
      10=>'入库审查',
      11=>'关闭',
      ];
      return $static[$data['max_static']];
    }
    
    // 获取下一阶段next_static
    protected function getNextStaticAttr($value,$data){
      if($data['static']==$data['max_static'] && $data['max_static']<10){
        $next_static=$data['max_static']+1;
      }else if ($data['static']<$data['max_static']){
        $next_static=$data['max_static'];
      }else{
        $next_static=0;
      }
      return $next_static;
    }
     
    // 获取下一阶段next_static_text
    protected function getNextStaticTextAttr($value,$data){
      $static=[
      0=>'结束',
      1=>'文件编制',
      2=>'文件校核',
      3=>'文件会签',
      4=>'文件审核',
      5=>'质量审核',
      6=>'部所审查',
      7=>'文控审查',
      8=>'项目审查',
      9=>'项目经理',
      10=>'入库审查',
      ];
      
      if($data['static']==$data['max_static'] && $data['max_static']<10){
        $next_static=$data['max_static']+1;
      }else if ($data['static']<$data['max_static']){
        $next_static=$data['max_static'];
      }else{
        $next_static=0;
      }
      return $static[$next_static];
    }
    
    // 设置查询范围
    protected function scopeStatic($query){
      $query->where('static','>',0);
    }

    // 设置一对多的process关系
    public function documentProcess(){
      return $this->hasMany('DocumentProcess');
    }
}
